package com.bo.book.controller;

import com.bo.book.mapper.UserMapper;
import com.bo.book.model.Result;
import com.bo.book.model.UserInfo;
import com.bo.book.service.UserService;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    UserService userService;
    // 登录时将用户的登录信息存储到了当前的session中,这是为了网站判断(是否登录)
    // 而这样做的目的其实就是(已登录的用户可以对图书管理系统进行操作,而未登录的用户不可以)
    // 但实际上所有功能(翻页,添加图书,修改图书,删除图书,,批量删除图书)都需要在(展示图书)的基础上操作
    // 所以我们只需要对(展示图书)进行"判断用户是否登录"的一个功能即可~
    @RequestMapping("/login")
    public boolean login(String userName, String password, HttpSession session){
        if(!StringUtils.hasLength(userName) || !StringUtils.hasLength(password)){
            return false;
        }
        UserInfo userInfo = userService.getPassword(userName);
        if(userInfo == null){
            return false;
        }
        if(password.equals(userInfo.getPassword())){
            userInfo.setPassword("");
            session.setAttribute("session_user_key",userInfo);
            return true;
        }
        return false;
    }
    // 在每个方法中判断是否登录也太麻烦
    // 所以单独弄一个checkLogin方法判断登陆情况返回给前端
    @RequestMapping("/checkLogin")
    public Result checkLogin(HttpSession session){
        Result result = new Result<>();
        UserInfo userInfo = (UserInfo) session.getAttribute("session_user_key");
        if(userInfo == null){
            result = Result.getUnogin(result);
            return result;
        }
        result = Result.getSuccess(result,"");
        return result;
    }
}
